package co.fitstart.coach.service;

import java.util.List;
import java.util.Map;

import co.fitstart.entity.course.round.CourseRound;
import co.fitstart.entity.course.round.Goal;
import co.fitstart.entity.courseware.assessment.BasicData;
import co.fitstart.entity.courseware.assessment.Disease;
import co.fitstart.entity.courseware.assessment.PostureJoint;
import co.fitstart.entity.courseware.assessment.StudentAssessment;
import co.fitstart.entity.courseware.assessment.StudentHabit;
import co.fitstart.entity.user.basic.BodyDataTarget;
import co.fitstart.entity.user.bwh.BwhRecord;

/**
 * 基础信息
 * @author haiyan_xiao
 *
 */
public interface BasicInformationService {
    /**
     * 
     * @param courseRound
     * @return
     */
    public Goal loadGoal(CourseRound courseRound);
    
    /**
     * 
     * @param courseRound
     * @return
     */
    public List<BodyDataTarget> listBodyDataTarget(CourseRound courseRound);
    
    /**
     * 
     * @param courseRound
     * @return
     */
    public Map<Integer, BwhRecord> listBwhRecord(CourseRound courseRound);
    
    /**
     * 
     * @param courseRound
     * @param goal
     * @param bodyDataTargets
     * @param bwhRecords
     */
    public void editTarget(CourseRound courseRound, Goal goal, List<BodyDataTarget> bodyDataTargets, List<BwhRecord> bwhRecords);
    
    /**
     * 
     * @param courseRound
     * @return
     */
    public StudentAssessment loadStudentAssessment(CourseRound courseRound);
    
    /**
     * load basicData by courseRound
     * @param courseRound
     * @return
     */
    public BasicData loadBasicData(CourseRound courseRound);
    
    /**
     * 
     * @param courseRound
     * @return
     */
    public StudentHabit loadStudentHabit(CourseRound courseRound);
    
    /**
     * load postureJoint by courseRound
     * @param courseRound
     * @return
     */
    public PostureJoint loadPostureJoint(CourseRound courseRound);
    
    /**
     * 
     * @param courseRound
     * @param basicData
     * @param diseases
     * @param postureJoint
     */
    public void editStudentAssessment(CourseRound courseRound, BasicData basicData, List<Disease> diseases, PostureJoint postureJoint);
    
    /**
     * 
     * @param courseRound
     * @param basicData
     * @param diseases
     */
    public void editBasicData(CourseRound courseRound, BasicData basicData, List<Disease> diseases);
    
    /**
     * edit studentHabit
     * @param courseRound
     * @param studentHabit
     */
    public void editStudentHabit(CourseRound courseRound, StudentHabit studentHabit);
    
    /**
     * edit postureJoint
     * @param courseRound
     * @param postureJoint
     */
    public void editPostureJoint(CourseRound courseRound, PostureJoint postureJoint);
    
    /**
     * edit jointFlexibility
     * @param courseRound
     * @param postureSummary
     * @param jointSummary
     * @param summary
     */
    public void editJointFlexibility(CourseRound courseRound, String postureSummary, String jointSummary, String summary);
}
